import os
from PIL import Image

def remove_white_background(input_image_path):
    # 读取图像
    image = Image.open(input_image_path)

    # 将图像转换为RGBA模式（包含透明通道）
    image = image.convert('RGBA')

    # 获取图像的像素数据
    pixels = image.load()

    # 创建一个与原始图像尺寸相同的空白图像
    result = Image.new('RGBA', image.size)

    # 遍历图像的每个像素
    for i in range(image.width):
        for j in range(image.height):
            # 获取当前像素的RGBA值
            r, g, b, a = pixels[i, j]

            # 判断像素是否为白色（或接近白色）
            if r > 200 and g > 200 and b > 200:
                # 将近白色像素设置为透明
                result.putpixel((i, j), (r, g, b, 0))
            else:
                # 将非白色像素保留
                result.putpixel((i, j), (r, g, b, a))

    # 保存抠图结果，覆盖原始图片
    result.save(input_image_path)

def process_images_in_folder(folder_path):
    # 遍历文件夹及其子文件夹中的所有文件
    for dirpath, dirnames, filenames in os.walk(folder_path):
        for filename in filenames:
            if filename.lower().endswith('.png'):
                # 构建完整的文件路径
                file_path = os.path.join(dirpath, filename)
                # 调用去除白色背景的函数
                print(f"Processing: {file_path}")  # 输出正在处理的文件
                remove_white_background(file_path)

# 指定要处理的文件夹路径
folder_path = r'E:\2024\game\phaser002\src\resources\graphics\Zombies\NewspaperZombie'
process_images_in_folder(folder_path)